---
title: モデル
description: Choose and configure language models for your agents
---

import { Code } from '@astrojs/starlight/components';
import modelCustomProviderExample from '../../../../../../examples/docs/models/customProviders.ts?raw';
import setDefaultOpenAIKeyExample from '../../../../../../examples/docs/config/setDefaultOpenAIKey.ts?raw';
import modelSettingsExample from '../../../../../../examples/docs/models/modelSettings.ts?raw';
import promptIdExample from '../../../../../../examples/basic/prompt-id.ts?raw';
import agentWithModelExample from '../../../../../../examples/docs/models/agentWithModel.ts?raw';
import runnerWithModelExample from '../../../../../../examples/docs/models/runnerWithModel.ts?raw';
import gpt5DefaultModelSettingsExample from '../../../../../../examples/docs/models/gpt5DefaultModelSettings.ts?raw';
import setTracingExportApiKeyExample from '../../../../../../examples/docs/config/setTracingExportApiKey.ts?raw';

最終的にすべての エージェント は LLM を呼び出します。SDK は 2 つの軽量インターフェースの背後にモデルを抽象化します:

- [`Model`](/openai-agents-js/openai/agents/interfaces/model) – 特定の API に対して _1 回_ のリクエストを行う方法を知っています
- [`ModelProvider`](/openai-agents-js/openai/agents/interfaces/modelprovider) – 人が読めるモデルの **names**（例: `'gpt‑4o'`）を `Model` インスタンスに解決します

日々の作業では、通常はモデルの **names** と、場合によっては `ModelSettings` にのみ触れます。

<Code
  lang="typescript"
  code={agentWithModelExample}
  title="エージェントごとにモデルを指定"
/>

## 既定のモデル

`Agent` の初期化時にモデルを指定しない場合、既定のモデルが使用されます。現在の既定は [`gpt-4.1`](https://platform.openai.com/docs/models/gpt-4.1) で、エージェントワークフローにおける予測可能性と低レイテンシの優れたバランスを提供します。

[`gpt-5`](https://platform.openai.com/docs/models/gpt-5) など他のモデルに切り替えたい場合、エージェントの設定方法は 2 つあります。

まず、カスタムモデルを設定していないすべてのエージェントで一貫して特定のモデルを使いたい場合は、エージェントを実行する前に環境変数 `OPENAI_DEFAULT_MODEL` を設定します。

```bash
export OPENAI_DEFAULT_MODEL=gpt-5
node my-awesome-agent.js
```

次に、`Runner` インスタンスに既定のモデルを設定できます。エージェント側でモデルを設定しない場合は、この `Runner` の既定モデルが使用されます。

<Code
  lang="typescript"
  code={runnerWithModelExample}
  title="Runner の既定モデルを設定"
/>

### GPT-5 モデル

この方法で GPT-5 の reasoning モデル（[`gpt-5`](https://platform.openai.com/docs/models/gpt-5)、[`gpt-5-mini`](https://platform.openai.com/docs/models/gpt-5-mini)、または [`gpt-5-nano`](https://platform.openai.com/docs/models/gpt-5-nano)）を使用する場合、SDK は既定で妥当な `modelSettings` を適用します。具体的には、`reasoning.effort` と `verbosity` の両方を `"low"` に設定します。既定モデルの reasoning 努力度を調整するには、独自の `modelSettings` を渡してください:

<Code
  lang="typescript"
  code={gpt5DefaultModelSettingsExample}
  title="GPT-5 の既定設定をカスタマイズ"
/>

低レイテンシを求める場合、[`gpt-5-mini`](https://platform.openai.com/docs/models/gpt-5-mini) または [`gpt-5-nano`](https://platform.openai.com/docs/models/gpt-5-nano) を `reasoning.effort="minimal"` とともに使用すると、既定設定より高速に応答を返すことが多いです。ただし、Responses API の一部の組み込みツール（ファイル検索や画像生成など）は `"minimal"` の reasoning 努力度をサポートしていないため、この Agents SDK の既定は `"low"` になっています。

### 非 GPT-5 モデル

カスタムの `modelSettings` なしで非 GPT-5 のモデル名を渡した場合、SDK はあらゆるモデルと互換性のある汎用的な `modelSettings` にフォールバックします。

---

## OpenAI プロバイダー

既定の `ModelProvider` は OpenAI APIs を使用して名前を解決します。2 つの明確なエンドポイントをサポートします:

| API              | 用途                                                                         | `setOpenAIAPI()` の呼び出し             |
| ---------------- | ---------------------------------------------------------------------------- | --------------------------------------- |
| Chat Completions | 標準的なチャット & 関数呼び出し                                              | `setOpenAIAPI('chat_completions')`      |
| Responses        | ツールコールや柔軟な出力に対応した新しい ストリーミング ファーストの生成 API | `setOpenAIAPI('responses')` _(default)_ |

### 認証

<Code
  lang="typescript"
  code={setDefaultOpenAIKeyExample}
  title="既定の OpenAI キーを設定"
/>

カスタムのネットワーク設定が必要な場合は、`setDefaultOpenAIClient(client)` 経由で独自の `OpenAI` クライアントを差し込むこともできます。

---

## ModelSettings

`ModelSettings` は OpenAI のパラメーターを反映しつつ、プロバイダー非依存です。

| Field               | Type                                       | Notes                                                                          |
| ------------------- | ------------------------------------------ | ------------------------------------------------------------------------------ |
| `temperature`       | `number`                                   | 創造性と決定性のバランス                                                       |
| `topP`              | `number`                                   | Nucleus sampling                                                               |
| `frequencyPenalty`  | `number`                                   | 繰り返し出現するトークンへのペナルティ                                         |
| `presencePenalty`   | `number`                                   | 新しいトークンの促進                                                           |
| `toolChoice`        | `'auto' \| 'required' \| 'none' \| string` | [ツール使用の強制](/openai-agents-js/ja/guides/agents#forcing-tool-use) を参照 |
| `parallelToolCalls` | `boolean`                                  | サポートされている場合に並列の関数呼び出しを許可                               |
| `truncation`        | `'auto' \| 'disabled'`                     | トークンの切り捨て戦略                                                         |
| `maxTokens`         | `number`                                   | 応答内の最大トークン数                                                         |
| `store`             | `boolean`                                  | 応答を永続化して取得や RAG ワークフローに利用                                  |
| `reasoning.effort`  | `'minimal' \| 'low' \| 'medium' \| 'high'` | gpt-5 などのための reasoning 努力度                                            |
| `text.verbosity`    | `'low' \| 'medium' \| 'high'`              | gpt-5 などのためのテキスト冗長性                                               |

設定は次のいずれかのレベルに付与できます:

<Code lang="typescript" code={modelSettingsExample} title="モデル設定" />

`Runner` レベルの設定は、競合するエージェントごとの設定を上書きします。

---

## プロンプト

エージェントは `prompt` パラメーターで構成でき、エージェントの動作を制御するために使用する サーバー保管 のプロンプト設定を指定します。現在、このオプションがサポートされるのは OpenAI の
[Responses API](https://platform.openai.com/docs/api-reference/responses) を使用する場合のみです。

| Field       | Type     | Notes                                                                                                               |
| ----------- | -------- | ------------------------------------------------------------------------------------------------------------------- |
| `promptId`  | `string` | プロンプトの一意の識別子                                                                                            |
| `version`   | `string` | 使用したいプロンプトのバージョン                                                                                    |
| `variables` | `object` | プロンプトに代入する変数のキー/値ペア。値は文字列またはテキスト・画像・ファイルなどのコンテンツ入力タイプにできます |

<Code
  lang="typescript"
  code={promptIdExample}
  title="プロンプト付きエージェント"
/>

tools や instructions などの追加のエージェント設定は、保管済みプロンプトで構成した値を上書きします。

---

## カスタムモデルプロバイダー

独自のプロバイダーの実装は簡単です。`ModelProvider` と `Model` を実装し、そのプロバイダーを `Runner` のコンストラクターに渡します:

<Code
  lang="typescript"
  code={modelCustomProviderExample}
  title="最小限のカスタムプロバイダー"
/>

---

## トレーシングエクスポーター

OpenAI プロバイダーを使用する場合、API キーを指定して自動トレースエクスポートを有効化できます:

<Code
  lang="typescript"
  code={setTracingExportApiKeyExample}
  title="トレーシングエクスポーター"
/>

これにより [OpenAI dashboard](https://platform.openai.com/traces) にトレースが送信され、ワークフローの完全な実行グラフを確認できます。

---

## 次のステップ

- [エージェントの実行](/openai-agents-js/ja/guides/running-agents) を探索
- [ツール](/openai-agents-js/ja/guides/tools) でモデルに強力な機能を付与
- 必要に応じて [ガードレール](/openai-agents-js/ja/guides/guardrails) や [トレーシング](/openai-agents-js/ja/guides/tracing) を追加
